|
Date : 14 juin 1991 Programme : SWAP Outils : SOFT-ICE Protection : Mot de passe Temps pass� : 1 heure Nom du fichier : SWAPE.EXE Soci�t� : MICROIDS Divers : D�j� essay� en INDONESIE sans succ�s. Origine : INDONESIE Num�ro : 089 Le soft se plante au bout de 18 coups si on a r�pondu n'importe quoi � la demande de mot de passe. La chaine de caract�res est appel� par l'INT 21 fonction 0A. Avec SOFT-ICE il est facile de partir de l� puis de voir ce que fait le soft. Ce dernier fait � la sorti d'un CALL ( qui doit tester si la chaine entr�e correspond au mot de passe ) deux MOV dans CS du contenu de AX et DX. Si la r�ponse est fausse ces registres contiennent 0000. Dans le cas contraire ils contiennent 0002 et 2B01 respectivement pour DX et AX. Il est d�s lors tentant de forcer ce contenu avec un adressage imm�diat. Malheureusement une instruction du type MOV WORD CS:[0E86],0002 est bien plus longue que l'instruction d'origine MOV CS:[0E86],DX. Il faut donc trouver "un endroit" � squater, y sauter, faire les modifs puis revenir et continuer bien gentiment comme si de rien n'�tait. En scannant tout le segment CS de 0 � FFFF je trouve le Message "Packed file is corrupt" cel� fait 22 octets et est largement suffisant pour contenir mes deux instructions de MOV et un JMP pour le retour. D'origine on a: 3D6D:E9B 2E8916860E MOV CS:[0E86],DX 3D6D:EA0 2EA3880E MOV CS:[0E88],AX On met � la place: 3D6D:E9B E92983 JMP 91C7 3D6D:E9E 90 NOP 3D6D:E9F 90 NOP 3D6D:EA0 90 NOP 3D6D:EA1 90 NOP 3D6D:EA2 90 NOP 3D6D:EA3 90 NOP 3D6D:EA4 .. Suite normale du programme. Et en 3D6D:91C7 on place les deux instructions � adressage imm�diat. 3D6D:91C7 2EC706860E0200 MOV WORD CS:[0E86],0200 3D6D:91CE 2EC706880E012B MOV WORD CS:[0E88],2B01 3D6D:91D5 E9C67C JMP E9E Voil�, avec PCTOOLS chercher la chaine 2E8916860E2EA3880E et remplacer par E92983909090909090, puis la chaine en ASCII "Packed". Commencer � remplacer au niveau de P qui est �gal � 50 par: 2EC706860E02002EC706880E012BE9C67C. FREDDY |